八戒科技服务技术负责人鸿鹄真人:做好技术负责人的4个关键特质
The following article is from 八戒技术团队 Author 鸿鹄真人
我这里分享一些我自己的经验,不一定适合每个技术负责人,兵无常势、水无常行,需要各位根据自己当下环境,因地制宜。
经验一 提能力
聚焦目标。战略/战术目标上要懂得聚焦和放弃。优先级处理,要以价值为导向。
管好团队。建立自驱式的团队文化,让团队持续迭代和成长。
知人善用。学会授权、赏罚分明。还有关键一点,具备同理心。
做好计划。俗话说兵马未动粮草先行,谋而后动,先做好计划再行动。
全程风控。全程具备风险意识,做好风险管理,制定风险应对措施。
紧抓细节。持续跟进进度,细节是魔鬼。
善于沟通。向上沟通,要建立全局思维;横向沟通,要有共赢心态;向下沟通,要学会建立技术影响力
经验二 修心态
气定神闲。遇到任何事,不管大事小事,都要不急不躁,气定神闲的思考清楚,然后一步一步解决。
雅量。谦卑,凡事皆能忍,坚信放过别人就是放过自己,不要把自己时间浪费在这些争强夺胜之上。一些人遇事一激就怼,甚至满口脏话,还有一些人,你一激他还满脸笑嘻嘻给你敬酒,你觉得这两种人谁能成事?
感恩与大气。学会感恩,感恩遇到的每个人,感恩给你帮助的,也感恩给你痛苦的,因为他们都是在帮你成长。大气不是说要花很多钱什么的,而是一种很强的利他思维,愿意与别人共赢。
在技术这个领域,无论在什么段位,技术永远是最核心的能力,只是不同段位,有不同的侧重而已。没有深厚的技术功底,犹如浮沙之上筑高台。在技术这个领域,我还真看过不少因为技术底子不稳而翻车的所谓ppt高手。
技术选型。比如微服务注册中心选型,你不知道CAP原则,你不知道Eureka、Zookeeper是CP还是AP,你不知道注册中心的本质是要做到AP,你怎么选型?
技术方案可控。如果你不懂常见的中间件底层原理,常见框架的源码,你怎么确保你设计的技术方案上是可控的?比如你方案里选择了SpringCloud Eureka来做注册中心,集群同步时效性如何?Feign+Ribbo+Euraka的服务发现时效和故障感知时效如何?如果你不清楚这些底层细节,你怎么保障你系统的技术方案是可控的?
那作为一名技术负责人如何提升技术的深度?
一要深挖底层原理、掌握本质。其实学技术无非就是学技术语言、学算法、学中间件、学框架、学架构。但大道至简, 每个技术一般都会有一些通用底层机制,比如Reactor模式、零拷贝机制、IO多路复用机制、日志预写机制、文件顺序读写机制、pipeline设计模式、动态代理。你掌握这些底层机制后,就会发现nginx 、redis、netty的网络通信都是基于reactor模式,消息中间件基本都用到了零拷贝技术、系统缓存机制等 ,都是有共性的。
二要打好基础内功。如果你学的是Java,你会发现研究到底层后,JVM是c++写的,IO多路复用机制、零拷贝的MMAP都会涉及到操作系统原理,还有一些中间件是c编写的,比如nginx、redis.你不懂操作系统,不懂底层语言,技术对你来说,始终就是黑盒子。除此之外还有数据结构、算法,当规模变大的时候,这些都是很重要的。
三要自研中间件实践。最能锻炼技术能力的是自己尝试去造一些轮子,并运用到生产中,在产生商业价值的同时,把自己掌握的知识真正拉通。比如设计一个RPC框架。RPC是一个远程过程调用框架,必然会涉及网络通信。网络通信,必然又会涉及到通信协议、序列化和反序列化、网络IO模型。
为什么要有通信协议?因为网络传输底层是基于tcp传输的,传输的是二进制流,是没有边界的,怎么去判定一次完整的消息,得有协议来约定。
为什么要序列化和反序列化?因为我们调用参数往往是对象,而网络传输的都是字节流,所以必须要把对象转成字节流,反过来,服务端接收到后,需要反序列化成对象,来处理。
为什么要思考网络IO模型?你要考虑性能因素。服务端接收客户端连接,读取客户端信息,到底同步还是异步?是阻塞还是非阻塞?一般常见的是bio和Nio, 延伸点到reactor的单线程、多线程、主从三种模型。然后多路复用机制,底层实现select、poll、 epoll区别,然后还有零拷贝机制等等。
再深入设计下去,你就要考虑分布式架构了,RPC框架如何支撑分布式架构?你得思考集群机制、服务注册、服务动态发现、心跳保活(续约)、异常剔除、下线等,还有多个服务负责均衡策略怎么设计?服务调用出错后怎么设计?服务调用超时了怎么设计?
通过一个RPC框架设计和研发,你会发现拉通了网络、操作系统、多线程、分布式架构、服务治理等一系列核心技术。
技术负责人要学会了解一些前沿的技术趋势和架构,不要只沉迷于当下,要能洞察到未来的技术趋势。
比如微服务架构趋势,你要了解DDD领域驱动设计、SpringCloud Alibaba等。
比如大规模下的分布式架构趋势,你需要了解同城双活、两地三中心、单元化架构设计等。
比如云原生趋势,你需要了解Docker、Kubernetes、Serverless 、ServiceMesh服务网格架构等。
比如平台安全生产质量保障趋势,你需要了解全链路压测、混沌工程等。
比如数字化趋势,你需要了解低代码平台。
比如新基建趋势,你需要了解人工智能、5G、物联网等。
在研究这些新趋势的同时,不要浮于表面,只是夸夸其谈一些概念,而是要结合自己当前业务,仰望星空的同时,一定要脚踏实地。
彭荣新:喜马拉雅自研网关架构演进过程
如何凭本事搞砸公司的重大项目?
系统“烂”怎么办?请看资深专家拆分改造实践
Google和Facebook为什么不用Docker?
追根溯源 - 数据中台概念的起源
重构 - 美股行情系统APP推送改造